#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Project: spd-sxmcc
"""
@author: lyndon
@time Created on 2019/2/7 6:56
@desc
"""
__author__ = 'Eva_J'
import multiprocessing
import time


def func(msg):
    print(msg, '*** in func')
    time.sleep(3)


if __name__ == "__main__":
    # 初始化一个进程池，参数是5，表示这个进程池中将有5个进程
    pool = multiprocessing.Pool(processes=5)
    for i in range(30):
        print(i)
        # 为进程池中的进程注入func方法，这里有apply_async和apply两种方式，分别表示“异步”和“同步”
        pool.apply_async(func, ("hello %d" % (i),))
        # pool.apply(func, ("hello %d" %(i), ))
    # 关闭进程池
    pool.close()
    # pool.terminate() #结束工作进程，不在处理未完成的任务
    pool.join()  # 主进程阻塞，等待子进程的退出， join方法要在close或terminate之后使用
    print("have done.")
